package main

import (
	"fmt"
	"yz-go/Viper"
	"yz-go/routers"

	"github.com/gin-gonic/gin"
	"github.com/spf13/viper"

	// "net/http"
	// "github.com/gin-gonic/gin"
	"github.com/thinkerou/favicon"
)

func InitConfig() {
	fmt.Println("初始化viper的另一个方式 后面直接可以用viper.GetInt/String等直接获取数据 ...")
	// viper.SetConfigName("config-develop") // yml文件
	// viper.AddConfigPath("")              // 路径

	viper.SetConfigFile("config-develop.yml")
	err := viper.ReadInConfig()
	if err != nil {
		fmt.Println(err)
	}

	fmt.Println("config app inited ...")
}

func main() {
	// gin.SetMode(gin.ReleaseMode) // 设置为开发模式
	// gin.SetMode(gin.DebugMode) // 设置为调试模式 【默认模式】

	router := gin.Default() // 也可以直接使用gin.new() 但是这样的话 每次请求都不会打印日志的！

	// 设置网页的ico小图标 【可能报错 需要删除 vendor，再 执行 go mod vendor 重新安装所有依赖】
	router.Use(favicon.New("./favicon.ico"))

	//router.Use(Middlewares.Cors())	// 为所有路由增加跨域机制

	// 日志测试
	//routers.LoggerRoutes(router)

	routers.AppRoutes(router)

	InitConfig() // 没有办法实时刷新

	// 初始化配置文件
	Viper.ViperTest() // 可以实时监听配置文件

	//router.SetTrustedProxies([]string{"127.0.0.1"})

	router.SetTrustedProxies([]string{"47.116.76.106"})

	fmt.Println(`
		##############################################
		#                                            #
		
		#         Project Startup Success!           #
		
		#         Listening on port 8082             #
		
		#                                            #
		##############################################
	`)
	// 绑定端口是8088
	router.Run(":8082")
}

//GOOS=linux GOARCH=amd64 CGO_ENABLED=0  go build -o test

// testgo.eeeknow.com
